package com.clouddong.exterapi.service;

import java.util.List;
import java.util.Map;

import com.clouddong.exterapi.po.ProbeXmlPingListJoinPo;
import com.clouddong.exterapi.po.ProbeListTablePo;
import com.clouddong.exterapi.po.ProbeTaskXmlPingJoinPo;
import com.clouddong.exterapi.vo.ProbeListTableVo;
import com.github.pagehelper.PageInfo;

/**
<blockquote>
<h1>ProberXml的Service类</h1>
* @author lpr
* @version 1.0.0
* @date [2018年7月17日 下午1:05:14]
*/
public interface ProbeOperationServiceI
{
	// 地市集合下的地市Ping码对应的key也就是[{ name: '大兴安岭地区', value: 0 }]中的value
	public final static String CITY_PINGCODE_KEY = "value";
	// 地市集合下的地市名称码对应的key也就是[{ name: '大兴安岭地区', value: 0 }]中的name
	public final static String CITY_PINGNAME_KEY = "name";

	// 省份集合下的省份Ping码对应的key也就是[{ name: '黑龙江', value: 1 }]中的value
	public final static String PRO_PINGCODE_KEY = "value";
	// 省份集合下的省份名称码对应的key也就是[{ name: '黑龙江', value: 1 }]中的name
	public final static String PRO_PINGNAME_KEY = "name";
	// 地市集合下的地市任务码对应的key
	public final static String CITY_PROBEID_KEY = "probe_id";
	// 地市集合下的地市任务的更新时间对应的key
	public final static String CITY_UPTIME_KEY = "uptime";

	// 省份区域集合下的省份名称对应的key也就是[{'text':'山西','children':['太原','吕梁','晋城']}]中的text
	public final static String PRO_AREANAME_KEY = "text";
	// 省份区域集合下的地市名称对应的key也就是[{'text':'山西','children':['太原','吕梁','晋城']}]中的children
	public final static String CITY_AREANAME_KEY = "children";

	public final static String CITY_AREACITYNAME_KEY = "text";

	public final static String CITY_AREACITYID_KEY = "id";
	//JSON封装
	public Map<String, List<List<Map<String, Object>>>> getFinalDataIsOperPingMap(List<ProbeXmlPingListJoinPo> poList,String type_id) throws Exception;
	//JSON封装
	public List<List<String>> getFinalDataIsOperPingTable(List<ProbeXmlPingListJoinPo> poList,String type_id) throws Exception;
	//获取普通数据源
	public List<ProbeXmlPingListJoinPo> getDataSourceIsOperPing(String task_id);
	//获取分页类型的数据源
	public PageInfo<ProbeXmlPingListJoinPo> getPageDataSourceIsOperPingMap(
	        String task_id,String provinceName,Integer pageCount,Integer pageSize,Integer sort,String sortDic);
	//根据attributeAll提取要返回的字段并获取nf_probe_list表下的所有的该字段信息
	public List<Map<String, Object>> getFinalDataByField(List<String> attributeAll) throws Exception;
	//获取查询接口的数据源
	public List<ProbeListTablePo> getDataSourceIsOperQuery(ProbeListTableVo proListTableVo);
	//获取查询接口的分页数据源
	public PageInfo<ProbeListTablePo> getPageDataSourceIsOperQuery(ProbeListTableVo proListTableVo,
			Integer pageCount,Integer pageSize,Integer sort,String sortDic);
	//封装数据返回的格式
	public List<List<String>> getFinalDataIsOperQuery(List<ProbeListTablePo> poList);
	
	//任务列表的JSON封装
	public List<List<String>> getFinalDataIsOperTask(List<ProbeTaskXmlPingJoinPo> poList) throws Exception;
	//获取任务列表查询的普通数据源
	public List<ProbeTaskXmlPingJoinPo> getDataSourceIsOperTask(String task_id, Integer type_id,
			String startTime,String endtime, String ip,Integer sort,String sortDic);
	//获取任务列表查询的分页数据源
	public PageInfo<ProbeTaskXmlPingJoinPo> getPageDataSourceIsOperTask(String task_id,Integer type_id,
	        String startTime,String endtime,String ip,Integer pageCount,Integer pageSize,Integer sort,String sortDic);
}
